class Decorator(object):
	def __init__(self, fn):
		self.__fn = fn

	# 类里面使用call方法，该对象实例是一个可调用对象
	def __call__(self, *args, **kwargs):
		print("请先登陆")
		self.__fn(args[0])


@Decorator # => say = Decorator(say) 等价于一个Decorator类的实例
def say(info):
	print(info)


say("hello")

###################

def test():
	pass
	
print(dir(test)) 

# dir 方法返回模块的属性列表
# 从属性列表中可以看出有__call__函数，说明函数名也是可执行的对象